home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 2, No. 03 (1982-11)(Softdisk)(Side B).zip / Softdisk Magazette Volume 2, No. 03 (1982-11)(Softdisk)(Side B).do / GRAPHING FUNCTIONS IN HI-RES.bas < prev    next >
BASIC Source File  |  1996-12-24  |  5KB  |  104 lines

  1. 1  REM <CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J>GRAPHING HGR FUNCTIONS<CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J>
  2. 10  REM *************************
  3. 11  REM **                     **
  4. 12  REM **   GRAPHING RATIONAL **
  5. 13  REM **       FUNCTIONS     **
  6. 14  REM **                     ** 
  7. 15  REM **        (C) 1982     **
  8. 16  REM **    MICRO SOFTWARE   **
  9. 17  REM **                     **   
  10. 18  REM *************************
  11. 50 :
  12. 60  DEF  FN NUM(X) = X
  13. 70  DEF  FN DEM(X) = (X +2)
  14. 75 :
  15. 80  REM <CTRL-J><CTRL-J>DEF FN DEN(X)=1>> IF YOU   HAVE A NON-RATIONAL GRAPH<CTRL-J><CTRL-J>
  16. 85 :
  17. 86  TEXT : HOME 
  18. 88  VTAB 12: HTAB 6: PRINT "G<CTRL-G> R<CTRL-G> A<CTRL-G>P<CTRL-G> H<CTRL-G> I<CTRL-G> N<CTRL-G> G<CTRL-G>  F<CTRL-G> U<CTRL-G> N<CTRL-G> C<CTRL-G> T<CTRL-G> I<CTRL-G> O<CTRL-G> N<CTRL-G> S": PRINT 
  19. 89  HTAB 14: PRINT "I N  H I - R E S": FOR I = 1 TO 3000: NEXT 
  20. 90  HOME : VTAB 23: INPUT "THERE ARE 280 HORIZONTAL DOTS. HOW MANY DOTS/UNIT DO YOU WANT? ";S
  21. 95  HOME 
  22. 100  VTAB 21: PRINT "CHANGE THE LOCATION OF THE ORIGIN BY","MOVING THE CURSOR WITH THE L-R-U-D KEYS","F=FINISHED!"
  23. 120  GOSUB 620: REM                <CTRL-J><CTRL-J>POSITION THE ORIGIN<CTRL-J><CTRL-J>
  24. 130  REM  <CTRL-J><CTRL-J>S IS THE SCALE FACTOR<CTRL-J><CTRL-J>
  25. 140  REM  <CTRL-J><CTRL-J>DETAIL INCREASES WITH S <CTRL-J><CTRL-J>
  26. 150  VTAB 21: PRINT "AFTER THE BOTTOM HALF OF THE GRAPH IS ","FINISHED >> TYPE ANY KEY!"
  27. 155  FOR I = 1 TO 3000: NEXT : HOME : VTAB 22
  28. 160  PRINT "THERE IS A HASH MARK (/) ON THE AXIS FOR EACH UNIT OF DISTANCE"
  29. 170  HGR : HCOLOR= 7
  30. 180  REM   <CTRL-J><CTRL-J>REAL AXIS AT (A,B)<CTRL-J><CTRL-J>
  31. 190  HPLOT 0,B TO 279,B: HPLOT A,0 TO A,191
  32. 200  REM <CTRL-J><CTRL-J>    HASH MARKS  <CTRL-J><CTRL-J>
  33. 210  FOR H = A TO 279  STEP S: HPLOT H,B -2 TO H,B +2: NEXT 
  34. 220  FOR H = A TO 0  STEP  -S: HPLOT H,B -2 TO H,B +2: NEXT 
  35. 230  FOR V = B TO 191  STEP S: HPLOT A -2,V TO A +2,V: NEXT 
  36. 240  FOR V = B TO 0  STEP  -S: HPLOT A -2,V TO A +2,V: NEXT 
  37. 245 :
  38. 250  REM <CTRL-J><CTRL-J>ACTUAL GRAPHICS<CTRL-J><CTRL-J>
  39. 260  FOR H = 0 TO 279
  40. 265 :
  41. 270  REM <CTRL-J><CTRL-J>TRANSFER THE HGR COORD.        TO THE REAL VALUE   <CTRL-J><CTRL-J>
  42. 280 X = (H -A)/S:D =  FN DEN(X)
  43. 285 :
  44. 290  REM <CTRL-J><CTRL-J>DRAW THE ASYMPTOTES<CTRL-J><CTRL-J>
  45. 300  IF D = 0  THEN  HCOLOR= 3: HPLOT H,0 TO H,191: HCOLOR= 7: GOTO 350
  46. 310 Y =  FN NUM(X)/D:V = B -Y *S
  47. 315 :
  48. 320  REM <CTRL-J><CTRL-J>TRANSFORM THE REAL Y 
  49. 321  REM TO HGR & SEE IF IT IS 
  50. 322  REM STILL ON THE SCREEN<CTRL-J><CTRL-J>
  51. 323  REM 
  52. 330  IF V >191  OR V <0  THEN 350
  53. 340  HPLOT H,V
  54. 350  NEXT H
  55. 360 :
  56. 370  REM <CTRL-J><CTRL-J>POKE BOTTOM OF GRAPH<CTRL-J><CTRL-J>
  57. 380  POKE  -16302,0: GET A$
  58. 390  TEXT : HOME 
  59. 395  FOR I = 1 TO 4: PRINT  CHR$(7): NEXT : VTAB 12
  60. 396  INPUT "DO YOU WISH TO CHANGE THE FUNCTION      BEING GRAPHED (Y/N)? ";AN$: IF AN$ = "Y"  THEN 440
  61. 397  HOME : VTAB 12
  62. 400  PRINT "DO YOU WANT TO SHIFT THE": INPUT "ORIGIN OR CHANGE THE SCALE (Y/N) ? ";A$
  63. 410  IF A$ = "Y"  OR A$ = "YES"  THEN 90
  64. 420  GOTO 60
  65. 440  HOME : PRINT "DIRECTIONS FOR RATIONAL FUNCTIONS"
  66. 450  PRINT "YOU MUST DEFINE YOUR FUNCTION ": PRINT "IN TERMS OF A NUMERATOR AND A": PRINT "DENOMINATOR FUNCTION"
  67. 460  PRINT "FOR EXAMPLE: IF YOU WISH TO GRAPH"
  68. 465  PRINT "THE FOLLOWING FUNCTION :"
  69. 470  PRINT : PRINT : PRINT "     (X-1)(X+2)"
  70. 480  PRINT " Y = ----------"
  71. 490  PRINT "       X(X-7)"
  72. 500  PRINT : PRINT : PRINT "YOU WOULD TYPE THE FOLLOWING"
  73. 510  PRINT "60 DEF FN NUM(X)=(X-1)*(X+2)  "
  74. 520  PRINT "70 DEF FN DEN(X)=X*(X-7)"
  75. 530  PRINT "TYPE 'RUN 60' TO RESTART"
  76. 535  VTAB 24: HTAB 14: PRINT "TYPE ANY KEY": GET A$: PRINT "": HOME 
  77. 536  PRINT  CHR$(7); CHR$(7); CHR$(7)
  78. 540  PRINT : FLASH : PRINT " REMEMBER :": PRINT "60 DEF FN NUM(X)=";: NORMAL : PRINT " LEGAL BASIC EXPRESSION"
  79. 560  FLASH : PRINT "70 DEF FN DEN(X)=";: NORMAL : PRINT " LEGAL BASIC EXPRESSION"
  80. 570  PRINT "TYPE 'RUN 60' TO RESTART": FOR I = 1 TO 2000: NEXT 
  81. 580  GOTO 830
  82. 600  REM <CTRL-J><CTRL-J><CTRL-J>POSITION THE ORIGIN     WITH THE L R U D & F KEYS  <CTRL-J><CTRL-J>
  83. 620  GR : COLOR= 3: PLOT 20,20:B = 20:A = 20
  84. 630  GET A$
  85. 640 A1 = A:B1 = B
  86. 650  IF A$ = "U"  THEN B = B -1: GOTO 710
  87. 660  IF A$ = "D"  THEN B = B +1: GOTO 710
  88. 670  IF A$ = "L"  THEN A = A -1: GOTO 710
  89. 680  IF A$ = "R"  THEN A = A +1: GOTO 710
  90. 690  IF A$ = "F"  THEN 800
  91. 700  REM <CTRL-J><CTRL-J>CHECK TO SEE IF POINT IS    ON THE LO RES SCREEN<CTRL-J><CTRL-J>
  92. 710  IF B <1  THEN B = 1
  93. 720  IF B >39  THEN B = 39
  94. 730  IF A <1  THEN A = 1
  95. 740  IF A >39  THEN A = 39
  96. 750  REM <CTRL-J><CTRL-J>BLANK OLD CURSOR<CTRL-J><CTRL-J>
  97. 760  COLOR= 0: PLOT A1,B1: COLOR= 3
  98. 770  REM <CTRL-J><CTRL-J>PLOT NEW CURSOR<CTRL-J><CTRL-J>
  99. 780  PLOT A,B
  100. 790  GOTO 630
  101. 800 A = 7 *A:B = B *192/40
  102. 810  REM <CTRL-J><CTRL-J><CTRL-J>CHANGE SCALE TO HGR2<CTRL-J><CTRL-J><CTRL-J>
  103. 820  TEXT : HOME : RETURN 
  104. 830  REM <CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J>    THE END.<CTRL-J><CTRL-J><CTRL-J><CTRL-J>